package com.cskaoyan.javase._2inner._3local._0introduction;

/**
 * 局部内部类是定义在一个方法或者一个作用域里面的类
 * 简单来说，将局部内部类看成是局部变量即可
 * 该局部内部类的有效范围仅在作用域内部。
 * （这意味着要创建它的对象，必须在作用域内部创建）
 *
 * 从语法和具体使用上看，局部内部类和成员内部类很相似
 * 有点类似于直接把一个成员内部类放进局部位置，语法是：
 *局部内部类语法
 * // 局部位置
 * class Inner{
 * }
 * // 局部位置
 *
 * 局部内部类自身特点
 * 主要从以下几个角度分析：
 *      1.访问权限修饰符
 *          局部内部类的作用范围就仅在大括号内部
 *          它不需要做权限控制
 *          除此之外,它也不能用static修饰
 *          这些都很类似于局部变量
 *
 *      2.成员特点
 *          局部内部类的成员特点和成员内部类完全一模一样
 *          没有static声明,但是可以定义不触发类加载的全局常量
 *
 *      3.继承和实现(重点)
 *          开发中使用局部内部类主要的用途就是
 *          用它继承/实现
 *
 * @since 17:23
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

class EnclosedClazz {
    // 外围类的成员方法的局部位置
    public void test() {
        // 局部内部类
        class Inner {
            int a;
            private int b = 10;
            // static int c = 20;
            static final int D = 30;

            {}
            public Inner() {
            }

            public Inner(int a, int b) {
                this.a = a;
                this.b = b;
            }
        }
    }

    public void test2(){

    }
}